package com.cn.wanxi.service;

import com.cn.wanxi.IO.NavIO;
import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.util.ReadNote;
import com.cn.wanxi.util.Tool;

import java.util.ArrayList;
import java.util.List;

public class NavService {


    /**
     * 得到导航集合
     *
     * @return
     */
    public List<NavModel> getNavList() {
        NavModel navModel = new NavModel();//获取导航model数组
        String[] titles = navModel.getTitles();
        String[] hrefs = navModel.getHrefs();
        return getData(hrefs, titles);
    }

    /**
     * 通过hrefs和titles传值进行封装list
     *
     * @param hrefs
     * @param titles
     * @return
     */
    private List<NavModel> getData(String[] hrefs, String[] titles) {
        List<NavModel> list = new ArrayList<>();//创建一个空的集合，用于存放navModel对象
        for (int i = 0; i < titles.length; i++) {
            NavModel model = new NavModel();//封装导航数据
//            set方法就是设置value
            model.setHref(hrefs[i]);//赋值
            model.setTitle(titles[i]);//赋值
            list.add(model);
        }
        return list;
    }

    /**
     * 通过IO流得到导航数据
     *
     * @return
     */
    public List<NavModel> getNavListFromIO() {
        String path = Tool.navPath.getPath();
//        1.写
        NavIO navIO = new NavIO();
        navIO.writeNote(path);
//        2.读
        String string = ReadNote.read(path);
//        3.封装
        List<NavModel> list = getNavListForIO(string);
        return list;
    }

    private List<NavModel> getNavListForIO(String string) {
        String[] strings = string.split("@@");
        String titleString = strings[1];//得到读取出来的数组的导航标题
//        因为字符串里面包括【】，所以需要提前去掉
        titleString = titleString.replace("[", "");//去掉左括号
        titleString = titleString.replace("]", "");
        String tt[] = titleString.split(",");//将字符串转换为我们需要的数组数组
        String hrefString = strings[0];//得到导航链接
        hrefString = hrefString.replace("[", "");//去掉左括号
        hrefString = hrefString.replace("]", "");
        String[] hh = hrefString.split(",");
        String[] titles = tt;
        String[] hrefs = hh;
        return getData(hrefs, titles);
    }



}
